﻿Imports System
Imports System.CodeDom
Imports System.Diagnostics.CodeAnalysis
Imports System.Text

Namespace System.Workflow.Activities.Rules
    Public Interface IRuleExpression
        ' Methods
        Sub AnalyzeUsage(ByVal analysis As RuleAnalysis, ByVal isRead As Boolean, ByVal isWritten As Boolean, ByVal qualifier As RulePathQualifier)
        Function Clone() As CodeExpression
        <SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", MessageId:="0#")> _
        Sub Decompile(ByVal stringBuilder As StringBuilder, ByVal parentExpression As CodeExpression)
        Function Evaluate(ByVal execution As RuleExecution) As RuleExpressionResult
        Function Match(ByVal expression As CodeExpression) As Boolean
        Function Validate(ByVal validation As RuleValidation, ByVal isWritten As Boolean) As RuleExpressionInfo
    End Interface
End Namespace

